package cn.iocoder.yudao.module.shop.info.vo;

import cn.iocoder.yudao.framework.business.basic.enums.SortTypeEnum;
import cn.iocoder.yudao.framework.business.eligibility.pojo.form.EligibilityApplyQueryDTO;
import cn.iocoder.yudao.framework.business.evaluation.enums.ScoreTypeEnum;
import cn.iocoder.yudao.framework.validation.InEnumCode;
import cn.iocoder.yudao.framework.validation.InEnumValue;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

@Schema(description = "店铺信息查询 Request VO")
@Data
public class ShopInfoQueryDTO extends EligibilityApplyQueryDTO {

    @Schema(description = "关键词", example = "测试")
    private String keyword;

    @Schema(description = "行业类目编号", example = "1")
    private Long categoryId;

    @Schema(description = "店铺种类（即主营类目编码）", example = "1")
    private String categoryCode;

    @Schema(description = "评分类型：0-全部、1-好评、2-中评、3-差评", example = "0")
    @InEnumValue(value = ScoreTypeEnum.class, message = "评分类型必须是 {value}")
    private Integer scoreType;

    @Schema(description = "排序类型：id、random、score 等，按距离排序时必须传经纬度", example = "id")
    @InEnumCode(SortTypeEnum.class)
    private String sortType;

    @Schema(description = "是否升序", example = "false")
    private Boolean sortAsc;

    @Schema(description = "城市编码", example = "520100")
    private String cityCode;

    @Schema(description = "纬度", example = "26.567322")
    private Double latitude;

    @Schema(description = "经度", example = "106.690801")
    private Double longitude;

}
